Method of inferring user&#39; direction, direction inferring apparatus, and terminal apparatus

ABSTRACT

A method of inferring a user&#39;s direction by a computer, the method includes: recording a relative azimuth angle obtained from an output of a direction sensor included in a terminal apparatus carried by the user; identifying the user&#39;s direction at a first point at which the user&#39;s direction is capable of being identified; and inferring the user&#39;s direction at a second point by using a relative azimuth angle corresponding to the first point and a relative azimuth angle corresponding to the second point different from the first point, and the user&#39;s direction that has been identified at the first point.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of theprior Japanese Patent Application No. 2011-103806, filed on May 6, 2011,the entire contents of which are incorporated herein by reference.

FIELD

The present invention relates to a method of inferring user' direction,a direction inferring apparatus, and a terminal apparatus.

BACKGROUND

To infer the behavior of a user, known technology uses outputs suppliedfrom various types of sensors installed in a terminal apparatus carriedby a user. For example, the current position of the user may thereby belocated from positional information collected by a global positioningsystem (GPS) receiver, a motion sensor, or a radio frequencyidentification (RFID) tag. In another example, a travel track of theuser may be identified by storing positional information in time series.

In addition to the above technology to infer the current position ortravel track of the user, there is also technology that infers adirection of the user. An example of the technology that infers thedirection of the user is a pedestrian navigation method that indicates aroute to a destination or guides the pedestrian along the routeaccording to the current position and direction of the pedestrian. Thispedestrian navigation method hypothesizes the direction of the back ortop of the mobile telephone as the direction of the pedestrian, assuminga situation in which the pedestrian manipulates a mobile telephone orviews a display while holding the mobile telephone with a hand. Underthis hypothesis, a pedestrian navigation server displays, on the mobiletelephone, the direction toward and distance to the destination withrespect to the current position, assuming that the mobile telephonedirection measured by a magnetic direction sensor is an upwarddirection.

User's behavior inferred as described above is used for the user tonavigate.

However, the above conventional technology infers the direction of thepedestrian only in a limited situation in which a route is indicated tothe pedestrian or the pedestrian is guided along the route; thedirection of the user may be inferred only when a relationship betweenthe user and the terminal apparatus is known.

The mobile telephone is not used by the user at all times, or rather themobile telephone is generally carried in a state in which the mobiletelephone is stored in a bag, a pocket of clothes, or the like. When themobile telephone is carried while in a bag or a pocket of clothes, thehypothesis in the above pedestrian navigation method that the pedestrianmanipulates the mobile telephone or views a display while holding themobile telephone with a hand does not hold. Thus, in the abovepedestrian navigation method, the direction of the user may be inferredonly when the relationship between the user and the terminal apparatusis known. For example, the terminal apparatus may also be used inmonitoring to collect information about advertisements in which the userwas interested during a travel. When a relationship between the user andthe terminal apparatus is unknown, then it becomes hard to use theterminal apparatus to collect user's interest in advertisements.Japanese Laid-open Patent Publication No. 2002-58057 is an example ofrelated art.

SUMMARY

According to an aspect of the invention, a method of inferring a user'sdirection by a computer, the method includes: recording a relativeazimuth angle obtained from an output of a direction sensor included ina terminal apparatus carried by the user; identifying the user'sdirection at a first point at which the user's direction is capable ofbeing identified; and inferring the user's direction at a second pointby using a relative azimuth angle corresponding to the first point and arelative azimuth angle corresponding to the second point different fromthe first point, and the user's direction that has been identified atthe first point.

The object and advantages of the invention will be realized and attainedby means of the elements and combinations particularly pointed out inthe claims. It is to be understood that both the foregoing generaldescription and the following detailed description are exemplary andexplanatory and are not restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates the structure of a direction inference systemaccording to a first embodiment.

FIG. 2 is a block diagram illustrating the structures of apparatusesincluded in the direction inference system according to the firstembodiment.

FIG. 3 illustrates an example of the structure of acceleration data.

FIG. 4 illustrates an example of the structure of relative azimuth angledata.

FIG. 5 illustrates an example of the structure of passage history data.

FIG. 6 illustrates an example of the structure of direction data.

FIG. 7 illustrates an example of inferred result data.

FIG. 8 schematically illustrates a travel trace of a user at a platform.

FIG. 9 is a graph illustrating a relationship between relative azimuthangle and time on the travel trace of the user illustrated in FIG. 8.

FIG. 10 is a method illustrating a procedure in an identifying processaccording to the first embodiment.

FIG. 11 is a method illustrating a procedure in an inferring processaccording to the first embodiment.

FIG. 12 illustrates an example of a computer that executes a directioninferring program according to the first embodiment and a secondembodiment.

DESCRIPTION OF EMBODIMENTS

Embodiments of a direction inferring method and a direction inferringapparatus disclosed in the present disclosure will be described indetail with reference to the drawings. These embodiments do not limitthe disclosed technology and may be appropriately combined together if aconflict does not occur between processes.

First Embodiment System Structure

First, the structure of a direction inferring system according to afirst embodiment will be described. FIG. 1 illustrates the structure ofthe direction inference system 1 according to the first embodiment. Thedirection inference system 1 in FIG. 1 includes a direction inferringserver 10, read/write units 20A to 20D, a terminal apparatus 30, and aservice company server 70. The example in FIG. 1 assumes a case inwhich, when one of the read/write units 20A to 20D detects that a user 3carrying the terminal apparatus 30 has approached a relevantadvertisement 5A, 5B, 5C, or 5D installed at a platform 5, the directionof the user 3 is inferred.

A network is connected between the read/writes units 20A to 20D and thedirection inferring server 10 and between the service company server 70and the direction inferring server 10 so that communication is possibletherebetween. Examples of the network include the Internet, a local areanetwork (LAN), a virtual private network (VPN), and other communicationnetworks, regardless of whether the network is a wired or wirelessnetwork. The terminal apparatus 30 and direction inferring server 10 areinterconnected by, for example, a mobile telephone network so thatcommunication is possible. In the description below, the read/writesunits 20A to 20D may be collectively referred to as the read/write units20 when they are not differentiated, and the advertisements 5A and 5Dmay be collectively referred to as the advertisements 5 when they arenot differentiated.

Each read/write unit 20 communicates with an IC tag (integrated circuit)31 incorporated into the terminal apparatus 30 described later to readout information recorded in the IC tag 31 or writes information into theIC tag 31. The read/write unit 20 emits an electromagnetic wave, theeffective communication distance of which is stipulated in thespecifications for close-coupled cards, proximity cards, or vicinitycards. These electromagnetic waves are used to generate electric powerfrom a coiled antenna incorporated into the IC tag 31 of the terminalapparatus 30, enabling data communication. The read/write unit 20 thenreads out information recorded in the IC tag 31 of the terminalapparatus 30 (an example of the information is terminal identification(ID), which identifies the terminal apparatus 30), and sends the readterminal ID to the direction inferring server 10 together with aposition ID, which identifies the position at which the read/write unit20 is set.

In an example illustrated in FIG. 1, the read/write units 20 areassociated with the advertisements 5A to 5D on the platform 5 on aone-to-one basis. When any one of the read/write units 20A to 20D readsa terminal ID, therefore, it may be detected that the user 3 carryingthe terminal apparatus 30 has approached the advertisement 5 to whichthe read/write unit 20 that has read the terminal ID is attached.Although the four advertisements 5A to 5D are installed in the examplein FIG. 1, the disclosed system may be applied to cases in which anynumber of advertisements 5, including a single advertisement 5, isinstalled. Although the read/write units 20 in FIG. 1 are in one-to-onecorrespondence with the advertisements 5A to 5D, one read/write unit 20may be associated with a plurality of advertisements 5.

The terminal apparatus 30 is an information processing unit carried bythe user 3. Examples of the terminal apparatus 30 include smart phones,personal handyphone systems (PHS), and personal digital assistants(PDAs). The example in FIG. 1 assumes that the terminal apparatus 30stored in the bag of the user 3 is carried, but this is not a limitationto the method of carrying the terminal apparatus 30. That is, the methodof carrying the terminal apparatus 30 in the disclosed system is notlimited to one hypothesis; the method of inferring the direction of theuser, the method being described later, may also be similarly applied tocases in which the terminal apparatus 30 is carried in other states inwhich, for example, the terminal apparatus 30 is stored in a pocket.Although, in the example in FIG. 1, only one terminal apparatus 30 isused, this is not a limitation; a plurality of terminal apparatuses 30may be used in the disclosed system.

The terminal apparatus 30 includes the IC tag 31, described later, bywhich the terminal ID of the terminal apparatus 30 and other data issent to the read/write unit 20. The terminal apparatus 30 furtherincludes motion sensor 33 described later, and uploads a sensor valueoutput by the motion sensor 33 to the direction inferring server 10.Examples of the motion sensor 33 include an acceleration sensor 33A andan angular velocity sensor 33B, which are described later. The terminalapparatus 30 not only may send outputs of the motion sensor 33 insuccession, but also may send sensor values accumulated during a fixedperiod at one time to suppress communication traffic.

Although, in this example, the terminal apparatus 30 includes the IC tag31 and motion sensor 33, the disclosed 30 may also include various typesof sensors other than theses sensors. For example, the disclosedterminal apparatus 30 may use a compass sensor, which measures anabsolute direction, instead of the angular velocity sensor 33B, whichmeasures a relative azimuth angle, or may use both the angular velocitysensor 33B and the compass sensor. Furthermore, the disclosed terminalapparatus 30 may use a global positioning system (GPS) sensor as asensor that may detect the position of the terminal apparatus 30 insteadof the IC tag 31, and may use both the terminal apparatus 30 and the GPSsensor. In this embodiment, a three-axis motion sensor, a three-axiscompass sensor, or the history of the three-axis motion sensor orthree-axis compass sensor may be used to identify the perpendiculardirection or a horizontal plane relative to the ground. Thus, in thisembodiment, the posture of the terminal apparatus 30 may be inferred.The relative azimuth angle used in this embodiment is the relativeazimuth angle on this inferred horizontal plane.

The direction inferring server 10 is a computer that provides a serviceby which the direction of the user 3 that has approached one of theadvertisements 5A to 5D installed on the platform 5 may be inferred. Forexample, when the direction inferring server 10 receives a position IDand terminal ID from one of the read/write units 20A to 20D attached tothe advertisements 5A to 5D, the direction inferring server 10 infersthe direction of the user 3 carrying the terminal apparatus 30 in thevicinity of the relevant advertisement 5. The direction inferring server10 then sends the position ID of the advertisement 5, a date and time,the direction of the user 3, and other inferred results to the servicecompany server 70.

The direction inferring server 10 according to this embodiment recordsthe relative azimuth angle obtained from an output supplied from theangular velocity sensor 33B included in the terminal apparatus 30carried by the user 3. The direction inferring server 10 according tothis embodiment further identifies the direction of the user 3 at afirst point at which the direction of the user 3 may be identified. Thedirection inferring server 10 according to this embodiment then uses therecorded relative azimuth angle corresponding to the first point, arelative azimuth angle at a second point, which is different from thefirst point, and the direction of the user 3 that has been identified atthe first point to infer the direction of the user 3 at the secondpoint.

As described above, the direction inferring server 10 according to thisembodiment uses the direction, which may be known by heuristics, of theuser 3 at the first point to identify the direction of the user 3 at thesecond point, which is the location of the advertisement 5 that the user3 has approached. Therefore, the direction inferring server 10 accordingto this embodiment may infer the direction of the user 3 at the secondpoint by performing an operation on the relative azimuth anglecorresponding to the first point and the relative azimuth angle at thesecond point, without limiting the relationship between the user 3 andthe terminal apparatus 30 to a particular positional relationship.

Accordingly, even if the relationship between the user 3 and theterminal apparatus 30 is unknown, the direction inferring server 10according to this embodiment may infer the direction of the user 3 atthe second point. In addition, the direction inferring server 10according to this embodiment may infer the direction of the user 3 atless cost than when a camera attached to the advertisement 5 is used toinfer the direction of the user 3.

The service company server 70 is a computer operated by a company thatsupplies various services related to the advertisements 5. For example,the service company server 70 identifies the user 3 that has faced theadvertisement 5, that is, the user 3 that has had an interest in theadvertisement 5 from the inferred results received from the directioninferring server 10. In another example, the service company server 70analyzes the effect of the advertisements 5 by indicating, on a map, thedirections of the users 3 that have passed by the advertisements 5 or bycounting the number of users 3 that have had an interest in theadvertisements 5. In another example, the service company server 70sends mail indicating services related to the advertisements 5 to theusers 3 that have had an interest in the advertisements 5.

Structure of the Terminal Apparatus 30

Next, the functional structure of the terminal apparatus 30 according tothis embodiment will be described. FIG. 2 is a block diagramillustrating the structures of apparatuses included in the directioninference system 1 according to the first embodiment. As illustrated inFIG. 2, the terminal apparatus 30 includes the IC tag 31 and motionsensor 33. In addition to the functional units illustrated in FIG. 2,the terminal apparatus 30 includes various other types of functionalunits included in known terminal apparatuses, such as, for example,various input devices and voice output devices as well as functionalunits that execute communication through a carrier and functional unitsthat execute application programs.

The IC tag 31 is an RFID tag incorporating an IC chip and a coiledantenna. For example, upon receipt of an electromagnetic wave emittedfrom the read/write unit 20, the IC tag 31 generates electric power fromthe coiled antenna, and uses the electric power to send informationrecorded in the IC chip (the terminal ID, for example) to the read/writeunit 20. Any identifier such as the telephone number of the terminalapparatus 30 or the ID number of a subscriber identity module (SIM) cardmay be used as the terminal ID.

The motion sensor 33 measures the motion of the terminal apparatus 30.The motion sensor 33 includes the acceleration sensor 33A and angularvelocity sensor 33B as illustrated in FIG. 2. Although the example inFIG. 2 illustrates a case in which the acceleration sensor 33A andangular velocity sensor 33B are included, the motion sensor 33 is notlimited to two sensors; the motion sensor 33 may further include acompass sensor and a velocity sensor.

The acceleration sensor 33A measures the acceleration of the terminalapparatus 30. Examples of the acceleration sensor 33A include athree-axis acceleration sensor, which measures acceleration in theX-axis direction, Y-axis direction, and Z-axis direction. Sensor valuesin the three-axis directions, measured by the acceleration sensor 33A,are converted into digital values by an analog-to-digital converter (notillustrated), after which the converted digital values are sent to thedirection inferring server 10. The method of measuring the accelerationmay be a semiconductor-based method, a mechanical method, an opticalmethod, or any another method.

The angular velocity sensor 33B measures the angular velocity of theterminal apparatus 30. Examples of the angular velocity sensor 33Binclude a three-axis gyroscope that measures accelerations around theX-axis, Y, axis, and Z-axis. Sensor values around the three axes,measured by the angular velocity sensor 33B, are converted into digitalvalues by an analog-to-digital converter (not illustrated), after whichthe converted digital values are sent to the direction inferring server10. The method of measuring the angular velocity may be of a vibrationtype, a rotational type, or any other type.

Structure of the Direction Inferring Server 10

Next, the functional structure of the direction inferring server 10according to this embodiment will be described. As illustrated in FIG.2, the direction inferring server 10 includes a communication interfaceunit 11, a sensor data storage unit 12, a passage history storage unit13, a direction storage unit 14, an inferred result storage unit 15, arecording unit 16, an identifying unit 17, and an inferring unit 18. Inaddition to the functional units illustrated in FIG. 2, the directioninferring server 10 includes various types of functional units includedin known computers, such as, for example, various input devices andvoice output devices.

The communication interface unit 11 controls communication with otherapparatuses such as the read/write units 20 and service company server70. In an example, the communication interface unit 11 receives theposition ID and terminal ID from the read/write unit 20 and alsoreceives sensor values of the motion sensor 33 from the terminalapparatus 30. In another example, the communication interface unit 11sends an inferred result indicating the direction of the user 3, whichis inferred by the inferring unit 18 described later, to the servicecompany server 70. Examples of the communication interface unit 11include a network interface card (NIC) such as a LAN card and a modem.

The sensor data storage unit 12 stores data measured by the motionsensor 33. In an example, the recording unit 16 described later records,in the sensor data storage unit 12, the acceleration and angularvelocity, which have been respectively received from the accelerationsensor 33A and angular velocity sensor 33B in the terminal apparatus 30,as well as a relative azimuth angle obtained by applying timeintegration to the angular velocity. In another example, the sensor datastorage unit 12 is referenced by the identifying unit 17 described laterto identify a time at which the user 3 has passed the first point atwhich the direction of the user 3 may be identified. In another example,the sensor data storage unit 12 is referenced by the inferring unit 18described later to infer the direction of the user 3 at a point at whichthe terminal ID has been read by the read/write unit 20.

As an aspect of the sensor data storage unit 12, acceleration data, inwhich a terminal ID, a time of detection, and acceleration are mutuallyassociated, is stored in time series. The time of detection is a time atwhich acceleration was detected by the acceleration sensor 33A. FIG. 3illustrates an example of the structure of the acceleration data. Allrecords in the example in FIG. 3 indicate the acceleration data of theterminal apparatus 30 having a terminal ID of 0001. As illustrated inFIG. 3, acceleration (a_(x1), a_(y1), a_(z1)) was measured at Dec. 1,2010 11:59:55, acceleration (a_(X2), a_(y2), a_(z2)) was measured at12:00:00 on that day, and acceleration (a_(X3), a_(y3), a_(z3)) wasmeasured at 12:00:05 on that day. In the example in FIG. 3, theacceleration data of the terminal apparatus 30 having the terminal ID0001 is illustrated; in practice, however, the acceleration data ofterminal apparatuses 30 having other terminal IDs are stored together.

In another aspect of the sensor data storage unit 12, relative azimuthangle data, in which a terminal ID, a time of detection, an angularvelocity, and a relative azimuth angle are mutually associated, isstored in time series. The time of detection is the time at which theangular velocity was collected by the angular velocity sensor 33B. Therelative azimuth angle is an angle through which the terminal apparatus30 was relatively moved from the direction of the terminal apparatus 30in an initial state, for example, the direction at which the terminalapparatus 30 starts to collect sensor values. The relative azimuth angleis derived when the angular velocity around the Z axis istime-integrated by the recording unit 16 described later.

FIG. 4 illustrates an example of the structure of the relative azimuthangle data. All records in the example in FIG. 4 indicate the relativeazimuth angle data of the terminal apparatus 30 having the terminal ID0001. As illustrated in FIG. 4, an angular velocity ( ω _(x1), ω _(y1),ω _(z1)) was measured at Dec. 1, 2010 11:59:55, an angular velocity ( ω_(x2), ω _(y2), ω _(z2)) was measured at 12:00:00 on that day, and anangular velocity ( ω _(X3), ω _(y3), ω _(z3)) was measured at 12:00:05on that day. In addition, a relative azimuth angle d1 was measured atDec. 1, 2010 11:59:55, a relative azimuth angle d2 was measured at12:00:00 on that day, and a relative azimuth angle d3 was measured at12:00:05 on that day. In the example in FIG. 4, the relative azimuthangle data of the terminal apparatus 30 having the terminal ID 0001 isillustrated; in practice, however, the relative azimuth angle data ofterminal apparatuses 30 having other terminal IDs are stored together.

The passage history storage unit 13 stores a history of recordsindicating that the user 3 passed the vicinity of the platform 5. Forexample, when the terminal ID of the terminal apparatus 30 that the user3 carries is read by the read/write unit 20 attached to theadvertisement 5, passage history data is stored in the passage historystorage unit 13 by the recording unit 16 described later.

As an aspect of the passage history storage unit 13, passage historydata, in which a terminal ID, a read time, a position ID, and a stayingtime are mutually associated, may be collected. The read time is a timeat which the terminal ID of the terminal apparatus 30 was read by theread/write unit 20. The staying time is a duration during which the user3 stayed in the vicinity of the advertisement 5; a duration from whichthe terminal ID of the terminal apparatus 30 is read by the read/writeunit 20 until the reading of the terminal ID becomes impossible isstored as the staying time by the recording unit 16.

FIG. 5 illustrates an example of the structure of the passage historydata. All records in the example in FIG. 5 indicate the passage historydata of the user 3 carrying the terminal apparatus 30 having theterminal ID 0001. The example in FIG. 5 indicates that the user 3 passedthe point indentified by a position ID of 0800 at Dec. 1, 2010 11:49:00and that the user 3 stayed the point indentified by the position ID 0800for 0.1 minute. The example in FIG. 5 further indicates that the user 3passed the point indentified by a position ID of 0900 at 11:50:00 onthat day and that the user 3 stayed the position identified by theposition ID 0900 for 0.1 minute. The example in FIG. 5 further indicatesthat the user 3 passed the point indentified by a position ID of 1000 at12:00:00 on that day and that the user 3 stayed the position identifiedby the position ID 1000 for three minutes. In the example in FIG. 5, thepassage history data of the terminal apparatus 30 having the terminal ID0001 is illustrated; in practice, however, the passage history data ofterminal apparatuses 30 having other terminal IDs are stored together.

The direction storage unit 14 stores direction identifying conditions,each of which is associated with an absolute direction in which the user3 is identified as facing when the direction identifying condition ismet. As an aspect of the direction storage unit 14, direction data, inwhich a position ID, a place, an direction identifying condition, anabsolute direction, and an attached read/write unit are mutuallyassociated may be collected. The direction identifying condition refersto a condition that is met to identify the direction of the user 3; forexample, a condition is defined under which possible directions of theuser 3 may be reduced to one by heuristics. The attached read/write unitrefers to the read/write unit 20 attached to a place to which thedirection identifying condition is applied. The attached read/write unitmay refer to a plurality of attached read/write units.

FIG. 6 illustrates an example of the structure of the direction data. Inthe example in FIG. 6, the direction identifying condition thatacceleration of gravity equal to or more than a prescribed threshold isdetected after a terminal ID is detected by any of the read/write unit20A, read/write unit 20B, read/write unit 20C, or read/write unit 20D isset for the platform having the position ID 1000. This setting is basedon the heuristics that when a person gets on an electric train, theacceleration of gravity at a time when the person steps over the spacingbetween the platform and an entrance/exit port of the electric train islarger than while the person is walking. The absolute directionidentified in this case is the direction in which the person moves fromthe platform to the front of the entrance/exit port of the electrictrain, that is, the south in the example in FIG. 6. If the directionidentifying condition is met, a point at which acceleration of gravitybecomes equal to or more than the prescribed threshold is assumed to thefirst point. The identifying unit 17 described later then identifies theabsolute direction in which the user 3 faces at the first point as thesouth.

In the example in FIG. 6, the direction identifying condition that aterminal ID is read by a read/write unit 20M is set for the descendingport of the escalator at the position having the position ID 0900. Thissetting is based on the heuristics that when a person gets off anescalator, the person faces the front. The absolute direction identifiedin this case is the direction toward the front of the descending port ofthe escalator, that is, the east in the example in FIG. 6. If thedirection identifying condition is met, the point at which the terminalID was read by the read/write unit 20M is assumed to the first point.The identifying unit 17 then identifies the absolute direction in whichthe user 3 faces at the first point as the east.

The inferred result storage unit 15 stores inferred results of thedirection, of the user 3, that has been inferred by the inferring unit18 described later. As an aspect of the inferred result storage unit 15,inferred result data, in which a terminal ID, a place ID, a readingread/write unit, the direction of the user 3, and a staying time aremutually associated may be collected. The reading read/write unit refersto the read/write unit 20, attached to the advertisement 5, that hasread the terminal ID. The inferred result data is sent to the servicecompany server 70 by the inferring unit 18 described later.

FIG. 7 illustrates an example of the inferred result data. The examplein FIG. 7 indicates that the terminal ID 0001 of the terminal apparatus30 has been read by the read/write unit 20C attached to theadvertisement 5C of the advertisements 5 attached to the platform 5having the position ID 1000. Specifically, the example indicates thatthe user 3 carrying the terminal apparatus 30 having the terminal ID0001 stayed in the vicinity of the advertisement 5C during a duration ofMar. 10, 2011 11:00:00 to 11:03:00 while facing in a direction 10degrees east of north. Although, in the example in FIG. 7, the directionof the user 3 is represented by an angle relative to the north, this isnot a limitation; the direction of the user 3 may be represented by anangle relative to a desired direction. The disclosed direction inferringserver 10 may also represent the direction of the user 3 relative to alandmark at a place where the direction of the user 3 has been inferred.

Semiconductor memory devices and storage units may be used as the sensordata storage unit 12, passage history storage unit 13, direction storageunit 14, and inferred result storage unit 15. Examples of thesemiconductor memory devices include video random access memories(VRAMs), random access memories (RAMs), read-only memories (ROMs), andflash memories. Examples of the storage units include hard disk drivesand optical disk drives.

The recording unit 16 is a processing unit that controls the recordingof data. As an aspect, when the recording unit 16 receives a detectiontime and acceleration from the acceleration sensor 33A of the terminalapparatus 30, the recording unit 16 records, in the sensor data storageunit 12, acceleration data in which the terminal ID of the sendingterminal apparatus 30 is associated with the detection time andacceleration. When the recording unit 16 receives a detection time andan angular velocity from the angular velocity sensor 33B of the terminalapparatus 30, the recording unit 16 carries out time-integration betweenthe angular velocity and the angular velocities that have been receivedso far to calculate an angle through which the user 3 has moved from thedirection in the initial state, that is, a relative azimuth angle. Therecording unit 16 then records, in the sensor data storage unit 12,relative azimuth angle data in which the terminal ID of the sendingterminal apparatus 30 is associated with the time of detection, theangular velocity, and the relative azimuth angle. The recording unit 16may set desired frequencies at which the acceleration sensor 33Anotifies the recording unit 16 of acceleration and the angular velocitysensor 33B notifies the recording unit 16 of the angular velocity.

As another aspect, when the recording unit 16 receives a position ID, aterminal ID, and a time of reading from the read/write unit 20, therecording unit 16 records, in the passage history storage unit 13,passage history data in which the position ID, the terminal ID, and thetime of reading are mutually associated. At that time, the recordingunit 16 measures a duration from which a notification of the positionID, the terminal ID, and the time of reading from the read/write unit 20starts until the notification is completed, and adds the measuredduration to the passage history data.

The identifying unit 17 is a processing unit that identifies thedirection of the user 3 at the first point at which the direction of theuser 3 may be identified. As an aspect, when the read/write unit 20notifies the identifying unit 17 of a position ID, a terminal ID, and atime of reading, the identifying unit 17 activates a process to read outa direction identifying condition corresponding to the sendingread/write unit 20, the direction identifying condition being part ofthe direction identifying conditions stored in the direction storageunit 14. When the direction identifying condition is “terminal IDreading”, the identifying unit 17 sets a time T0 at which the terminalID was read as a direction identifying time T1. The reason why theterminal ID read time T0 is set as the direction identifying time T1 isthat the direction identifying condition that the point at which theterminal ID is read by the read/write unit 20 is assumed to be the firstpoint is set. When the direction identifying condition is “accelerationof gravity”, the identifying unit 17 sets the time at which accelerationof gravity equal to or more than the prescribed threshold was detectedafter the terminal ID was detected by the read/write unit 20 as thedirection identifying time T1, with reference to the acceleration datastored in the sensor data storage unit 12. The identifying unit 17 thenreferences the direction storage unit 14 and identifies the absolutedirection at the point at which the applied direction identifyingcondition is met as the direction of the user 3 at the first point.

Accordingly, when the direction identifying time T1 has been set, arelative azimuth angle θ₁ at the first point, which is part of therelative azimuth angle data, may be called in a subsequent process.Although, in this example, time has been used as an index to call therelative azimuth angle θ₁ at the first point, any data linked to therelative azimuth angle, such as, for example, the number of stepscounted from a prescribed position taken as an origin may be used as theindex.

The inferring unit 18 is a processing unit that infers the direction ofthe user 3 at the second point at which the terminal ID was read byusing the relative azimuth angle corresponding to the first point, therelative azimuth angle at the second point, and the direction of theuser 3 identified at the first point.

As an aspect, the inferring unit 18 infers the direction of the user 3at the second point, assuming that the terminal apparatus 30 carried bythe user 3 is placed in a bag or pocket and the correlation between thedirection of the user 3 and the direction of the terminal apparatus 30remains unchanged.

This type of inference will be described. First, the inferring unit 18acquires the direction identifying time T1 identified by the identifyingunit 17. The inferring unit 18 then reads out the relative azimuth anglecorresponding to the direction identifying time T1, the relative azimuthangle being part of the relative azimuth angles stored in the sensordata storage unit 12 as the relative azimuth angle data. Then, therelative azimuth angle θ₁ at the first point is acquired. The inferringunit 18 subtracts the relative azimuth angle θ₁ at the first point fromthe direction of the user 3 at the first point to identify a basic axisthat indicates a direction inferable as the initial state that the user3 faces, the terminal apparatus 30 starting to collect sensor values inthe initial state. The inferring unit 18 then reads out a relativeazimuth angle θ₂ corresponding to the terminal ID read time T0, therelative azimuth angle θ₂ being part of the relative azimuth anglesstored in the sensor data storage unit 12 as the relative azimuth angledata. Then, the relative azimuth angle θ₂ at the second point isacquired. Then, the inferring unit 18 adds the relative azimuth angle θ₂at the second point to the direction used as the basic axis of the user3, which has been calculated earlier, to infer the direction of the user3 at the second point. The inferring unit 18 then stores, in theinferred result storage unit 15, inferred result data in which inferredresults obtained by the inference are mutually associated, the inferredresults including, for example, the direction of the user 3, theterminal ID of the user 3, the position ID of the position at which theadvertisement 5 is present, the attached read/write unit, and timeduring which the user 3 stayed.

Although, in this example, the basic axis of the terminal apparatus 30has been obtained to infer the direction of the user 3 at the secondpoint, the method of inferring the direction of the user 3 is notlimited to this method. For example, the inferring unit 18 may add adifference between the relative azimuth angle θ₁ at the first point andthe relative azimuth angle θ₂ at the second point to the direction ofthe user 3 at the first point to infer the direction of the user 3 atthe second point.

A specific example to infer the direction of the user 3 will bedescribed with reference to FIGS. 8 and 9. FIG. 8 schematicallyillustrates a travel trace of the user 3 at the platform 5, and FIG. 9is a graph illustrating a relationship between relative azimuth angleand time on the travel trace of the user 3 illustrated in FIG. 8. In theexample in FIG. 8, the description below assumes that the upwarddirection is the north, the downward direction is the south, the leftdirection is the west, and the right direction is the east. The graph inFIG. 9 indicates relative azimuth angle (degrees) on the vertical axisand time (s) on the vertical axis.

As illustrated in FIG. 8, the user 3 passes outside the read range ofthe read/write unit 20A attached to the advertisement 5A, passes outsidethe read range of the read/write unit 20B attached to the advertisement5B, and reaches the read range of the read/write unit 20C attached tothe advertisement 5C. When the user 3 reaches the read range of theread/write unit 20C, the read/write unit 20C starts to read the terminalID of the terminal apparatus 30 that the user 3 carries. The time atwhich the read/write unit 20C starts to read the terminal ID is assumedto be T0. In this case, as illustrated in FIG. 9, there is no change inthe relative azimuth angle between time t1 (=T0) and time t2. Thisindicates that the user 3 is stopping in front of the advertisement 5C.When time t2 passes, the relative azimuth angle starts to change againas the user 3 moves. The change in the relative azimuth angle stopsagain at time t3, and acceleration of gravity equal to or more than athreshold is detected at time t4 (=T1).

The identifying unit 17 sets the relative azimuth angle corresponding totime T1, at which acceleration of gravity equal to or more than thethreshold was detected, as the relative azimuth angle θ₁ at the firstpoint. As defined by the direction data illustrated in FIG. 6, theidentifying unit 17 identifies the absolute direction in which the user3 faces at the first point as the south, assuming that a point at whichacceleration of gravity becomes the threshold or more to be the firstpoint. Then, the inferring unit 18 reads out the relative azimuth angleθ₁ corresponding to the direction identifying time T1, the relativeazimuth angle θ₁ being part of the relative azimuth angles stored in thesensor data storage unit 12 as relative azimuth angle data. The relativeazimuth angle θ₁ is now assumed to be 150 degrees. The inferring unit 18subtracts the relative azimuth angle θ₁ at the first point from thedirection D of the user 3 at the first point to infer a basic axis U (30degrees=D−θ₁) of the user 3. The inferring unit 18 then reads out therelative azimuth angle θ₂ corresponding to the terminal ID read time T0,the relative azimuth angle θ₂ being part of the relative azimuth anglesstored in the sensor data storage unit 12 as relative azimuth angledata. The relative azimuth angle θ₂ is then assumed to be 10 degrees.The inferring unit 18 adds the relative azimuth angle θ₂ at the secondpoint to the basic axis U of the terminal apparatus 30, which has beencalculated earlier, to infer the direction An (40 degrees=U+θ₂) of theuser 3 at the second point.

The inferring unit 18 sends the inferred result data stored in theinferred result storage unit 15 to the service company server 70. Theinferring unit 18 may also select only inferred result data in which thestaying time is equal to or longer than a prescribed duration, as theinferred result data to be sent to the service company server 70.

Various types of integrated circuits and electronic circuits may be usedas the recording unit 16, identifying unit 17, and inferring unit 18.Examples of integrated circuits include application-specific integratedcircuits (ASICs). Examples of electronic circuits include centralprocessing units (CPUs) and micro processing units (MPUs).

Flow of Processing

Next, flow of the processing executed by the direction inferring server10 according to this embodiment will be described. An identifyingprocess executed by the identifying unit 17 will be first described in(1) below, and an inferring process executed by the inferring unit 18 isthen described in (2) below.

(1) Identifying Process

FIG. 10 is a method illustrating a procedure in the identifying processaccording to the first embodiment. The identifying process in FIG. 10 isactivated when a position ID, a terminal ID, and a read time arereceived from the read/write unit 20.

As illustrated in FIG. 10, upon receipt of a position ID, a terminal ID,and a read time from the read/write unit 20 (the result in step S101 isYes), the identifying unit 17 reads out a direction identifyingcondition corresponding to the sending read/write unit 20, the directionidentifying condition being part of the direction identifying conditionsstored in the direction storage unit 14 (step S102).

If the direction identifying condition is “terminal ID reading” (theresult in step S103 is Yes), the identifying unit 17 sets the time T0 atwhich the terminal ID was read as the direction identifying time T1(step S104).

If the direction identifying condition is “acceleration of gravity” (theresult in step S103 is No), the identifying unit 17 sets the time atwhich acceleration of gravity equal to more than the prescribedthreshold was detected after the terminal ID was detected by theread/write unit 20 as the direction identifying time T1, with referenceto the acceleration data stored in the sensor data storage unit 12 (stepS105).

The identifying unit 17 then determines the absolute direction of theuser 3 at the direction identifying time T1 with reference to thedirection storage unit 14 (step S106), and terminates the process.

(2) Inferring Process

FIG. 11 is a method illustrating a procedure in the inferring processaccording to the first embodiment. The inferring process in FIG. 11 isactivated when the process in step S106 in FIG. 10 is completed.

As illustrated in FIG. 11, the inferring unit 18 acquires the directionidentifying time T1 identified by the identifying unit 17 (step S301).The inferring unit 18 then reads out the relative azimuth anglecorresponding to the direction identifying time T1, the relative azimuthangle being part of the relative azimuth angles stored in the sensordata storage unit 12 as the relative azimuth angle data (step S302).

The inferring unit 18 subtracts the relative azimuth angle θ₁ at thefirst point from the direction of the user 3 at the first point toidentify the basic axis that indicates a direction inferable as theinitial state that the user 3 faces, the terminal apparatus 30 startingto collect sensor values in the initial state (step S303).

The inferring unit 18 then reads out the relative azimuth angle θ₂corresponding to the terminal ID read time T0, the relative azimuthangle θ₂ being part of the relative azimuth angles stored in the sensordata storage unit 12 as the relative azimuth angle data (step S304).

The inferring unit 18 then adds the relative azimuth angle θ₂ at thesecond point to the direction used as the basic axis of the user 3,which has been identified earlier, to infer the direction of the user 3at the second point (step S305), and terminates the process.

Advantages of the First Embodiment

As described above, the direction inferring server 10 according to thisembodiment uses the direction, which may be known by heuristics, of theuser 3 at the first point to identify the direction of the user 3 at thesecond point, which is the location of the advertisement 5 that the user3 has approached. Therefore, the direction inferring server 10 accordingto this embodiment may infer the direction of the user 3 at the secondpoint by performing an operation on the relative azimuth anglecorresponding to the first point and the relative azimuth angle at thesecond point, without limiting the relationship between the user 3 andthe terminal apparatus 30 to a particular positional relationship.

Accordingly, even if the relationship between the user 3 and theterminal apparatus 30 is unknown, the direction inferring server 10according to this embodiment may infer the direction of the user 3 atthe second point. In addition, the direction inferring server 10according to this embodiment may infer the direction of the user 3 atless cost than when a camera attached to the advertisement 5 is used toinfer the direction of the user 3.

Furthermore, the direction inferring server 10 according to thisembodiment assumes a point that satisfies a condition as a result of atravel of the user 3 that carries the terminal apparatus 30 to be thefirst point with reference to the direction storage unit 14, after whichthe direction inferring server 10 identifies the direction of theabsolute direction associated with the condition as the direction of theuser 3 at the first point. Accordingly, the direction inferring server10 according to this embodiment may use a condition to which heuristics,for example, is applied to identify the direction of the user 3 at thefirst point, and thereby may improve precision with which the directionof the user 3 is inferred.

Second Embodiment

Although an embodiment related to the disclosed terminal apparatus hasbeen described, the present disclosure may be embodied in various formsbesides the embodiment described above. Another embodiment included inthe present disclosure will be described below.

Points at which Direction is Inferred

In the first embodiment described above, an example has been describedin which the direction of the user 3 at the second point at which aterminal ID was read by the read/write unit 20C is inferred. However,the direction of the user 3 at another point may also be inferred.Although, in the example in FIGS. 8 and 9, only the read/write unit 20Cof the read/write units 20 has read the terminal ID, if the read/writeunits 20A and 20B also read the terminal ID, the direction of the user 3in the vicinity of the advertisement 5A and 5B may be inferred. Asanother example, the direction inferring server 10 may also infer thedirection of the user 3 at all points for which the relative azimuthangle is stored in the sensor data storage unit 12.

Position Detecting Sensors

Although, in the first embodiment described above, the IC tag 31 in theterminal apparatus 30 and the read/write unit 20 have been used todetect the position of the terminal apparatus 30, the disclosed systemis not limited to this. For example, the terminal apparatus 30 may useknown position detecting sensors used in GPS, dead reckoning, receivedsignal strength indication (RSSI), and the like to detect the positionof the terminal apparatus 30.

Orientation Detecting Sensors

Although, in the example in the first embodiment described above, theangular velocity sensor 33B has been used to detect the direction of theterminal apparatus 30, the disclosed terminal apparatus is not limitedto this. For example, the terminal apparatus 30 may include both anangular velocity sensor and a compass sensor; to detect the absolutedirection of the terminal apparatus 30, the angular velocity sensor maybe used indoors as in the first embodiment and the compass sensor may beused outdoors. Insufficient indoor detection precision of the compasssensor may be thereby compensated for in the detection of the directionof the user 3.

Standalone Terminal Apparatus

Although, in the first embodiment described above, the directioninferring server 10 has inferred the direction of the user 3, thedisclosed terminal apparatus is not limited to this. For example, theterminal apparatus 30 may infer the direction of the user 3 alone byincorporating functional units that provide the same functions as thesensor data storage unit 12, passage history storage unit 13, directionstorage unit 14, inferred result storage unit 15, recording unit 16,identifying unit 17, and inferring unit 18 illustrated in FIG. 2 intothe terminal apparatus 30.

Walking Detection

A possible method of establishing a correlation between the direction ofthe terminal apparatus 30 and the direction of the user 3 is torecognize the walking of the user 3 and its progress direction by usingthe sensor value of the acceleration sensor and save a correlationbetween the direction of the user 3 and the direction detected by thecompass sensor in the terminal apparatus 30 at the time of therecognition. A GPS sensor may be used instead of the accelerationsensor.

When the user 3 is on an electric train or another vehicle, however, itis assumed that vertically accelerated operation is less and the user 3proceeds in a fixed direction. In this case, it is suppress to establishthe correlation between the direction of the terminal apparatus 30 andthe direction of the user 3. This increases the precision with which thecorrelation between the direction of the user 3 and the direction of theterminal apparatus 30 is established. That is, while the user 3 isproceeding to the right or left, it is also possible not to detect theprogress as walking and regard the progress direction as the directionof the user 3, suppressing the mistaken use of the wrong direction ofthe user 3. Even after the correlation between the direction of the user3 and the direction of the terminal apparatus 30 has been established,if, for example, the user 3 changes the hand with which the bag is beingheld, the correlation becomes incorrect. When the direction of the user3 is inferred, therefore, the most recently established correlationbetween the direction of the user 3 and the direction of the terminalapparatus 30 is preferably used.

As described above, a position obtained from a GPS sensor, anacceleration sensor, or another position detecting sensor is used toassume a point at which the progress direction of the user 3 may beidentified from a trace of a plurality of positions to be the firstpoint, and the progress direction of the user 3 at the first point isidentified as the direction of the direction of the user 3 at the firstpoint. Accordingly, the terminal apparatus 30 may be used as astandalone terminal apparatus that may infer the direction of the user3.

Sequence of Basic Axis Identification

Although, in the first embodiment described above, the basic axis of theuser 3 has been identified after the terminal ID had been read by theread/write unit 20, that is, the terminal apparatus 30 had reached thesecond point, the basic axis of the user 3 may be first identified.

Holding the Correlation

With the disclosed direction inferring server 10, when the correlationbetween the direction of the user 3 and the direction of the terminalapparatus 30, that is, the basic axis of the user 3 is held, it is stillpossible to infer the direction of the user 3 at subsequent points atwhich the terminal ID is read by the read/write unit 20. The directioninferring server 10 preferably holds the basic axis of the user 3indentified at the most recent first point that the user 3 has passed.

Distribution and Unification

The components of the apparatuses illustrated in FIG. 2 are not limitedto the physical structures illustrated in FIG. 2. That is, the specificform of distribution or unification of the components of the apparatusesis not limited to FIG. 2; all or part of the components may befunctionally or physically distributed or unified in a desired unitaccording to various loads and the usage situation. For example, therecording unit 16, identifying unit 17, or inferring unit 18 may beconnected through a network as an external unit of the directioninferring server 10. Alternatively, the recording unit 16, identifyingunit 17, or inferring unit 18 may be included in other apparatuses andthese apparatuses may be mutually connected through a network toimplement the functions of the direction inferring server 10.

Orientation Inferring Program

The processes described in the above embodiments may be implemented byexecuting a program prepared in advance on a personal computer, aworkstation, or another type of computer. An example of a computer thatexecutes a direction inferring program having the same functions as inthe embodiments descried above will be described with reference to FIG.12.

FIG. 12 illustrates an example of a computer that executes a directioninferring program according to the first embodiment and the secondembodiment. As illustrated in FIG. 12, the computer 100 includes amanipulation unit 110 a, a speaker 110 b, a camera 110 c, a display 120,and a communication unit 130. The computer 100 further includes a CPU150, a ROM 160, a hard disk drive (HDD) 170, and a RAM 180. Themanipulation unit 110 a, speaker 110 b, camera 100 c, display 120,communication unit 130, CPU 150, ROM 160, HDD 170, and RAM 180 aremutually connected through a bus 140.

As illustrated in FIG. 12, a direction inferring program 170 a, whichprovides the same functions as the recording unit 16, identifying unit17, and inferring unit 18 described in the above first embodiment, ispre-stored in the HDD 170. As with the recording unit 16, identifyingunit 17, and inferring unit 18 illustrated in FIG. 2, the components ofthe direction inferring program 170 a may be appropriately unified orseparated. That is, all of data to be pre-stored in the HDD 170 may notremain pre-stored in the HDD 170; only data to be used in processing maybe pre-stored in the HDD 170.

The CPU 150 reads outs the direction inferring program 170 a from theHDD 170 and stores the direction inferring program 170 a in the RAM 180.Then, the direction inferring program 170 a functions as a directioninferring process 180 a, as illustrated in FIG. 12. The directioninferring process 180 a reads out various types of data from the HDD 170and appropriately stores the read-out data in an area that is allocatedto the direction inferring process 180 a in the RAM 180. The directioninferring process 180 a executes various types of processing by usingthe stored data. The direction inferring process 180 a includesprocesses executed by the recording unit 16, identifying unit 17, andinferring unit 18 illustrated in FIG. 2, that is, for example, theprocesses illustrated in FIGS. 10 and 11. All processing units to bevirtually implemented by the CPU 150 may not operate on the CPU 150;only processing units to be used for processing may be virtuallyimplemented.

The direction inferring program 170 a described above may not bepre-stored in the HDD 170 or ROM 160 from scratch in some cases. Forexample, programs may be pre-stored on a so-called flexible disk (FD), acompact disk-read-only memory (CD-ROM), a digital versatile disk (DVD),a magneto-optical disk, an integrated circuit (IC) card, or anotherportable physical medium that may be inserted into the computer 100.Then, the computer 100 may acquire these programs from the portablephysical medium and may execute the acquired programs. Alternatively,programs may be pre-stored in, for example, another computer or a severconnected to the computer 100 through a public line, the Internet, alocal area network (LAN), a wide area network (WAN), or the like. Thecomputer 100 may then acquire these programs from the other computer orserver and may execute the acquired programs.

All examples and conditional language recited herein are intended forpedagogical purposes to aid the reader in understanding the inventionand the concepts contributed by the inventor to furthering the art, andare to be construed as being without limitation to such specificallyrecited examples and conditions, nor does the organization of suchexamples in the specification relate to a showing of the superiority andinferiority of the invention. Although the embodiments of the presentinvention have been described in detail, it should be understood thatthe various changes, substitutions, and alterations could be made heretowithout departing from the spirit and scope of the invention.

1. A method of inferring a user's direction by a computer, the methodcomprising: recording a relative azimuth angle obtained from an outputof a direction sensor included in a terminal apparatus carried by theuser; identifying the user's direction at a first point at which theuser's direction is capable of being identified; and inferring theuser's direction at a second point by using a relative azimuth anglecorresponding to the first point and a relative azimuth anglecorresponding to the second point different from the first point, andthe user's direction that has been identified at the first point.
 2. Themethod according to claim 1, wherein as the identifying of the user'sdirection at the first point, the computer references a recording unitthat stores conditions under which the user's direction is identified,each condition being associated with an absolute direction in which theuser is identified as facing when the each condition is satisfied, andidentifies the absolute direction as the user's direction at the firstpoint based on a result of a travel of the user that carries theterminal apparatus is assumed to be the first point.
 3. The methodaccording to claim 1, wherein as the identifying of the user's directionat the first point, the computer assumes a point at which a travellingdirection of the user is capable of being identified from a trace of aplurality of positions to be the first point and identifies thetravelling direction of the user at the first point is identified as theuser's direction at the first point, by using a position detectingsensor that detects the user's direction at the first point.
 4. Adirection inferring apparatus comprising: a recording unit configured torecord a relative azimuth angle obtained from an output supplied from andirection sensor included in a terminal apparatus carried by a user; anidentifying unit configured to identify a user's direction at a firstpoint at which the user's direction is capable of being identified; andan inferring unit configured to infer the user's direction at a secondpoint different from the first point, by using a relative azimuth anglecorresponding to the first point and a relative azimuth anglecorresponding to the second point different from the first point, andthe user's direction that has been identified at the first point.
 5. Aterminal apparatus comprising: a direction sensor configured to measurea relative azimuth angle of the terminal apparatus; a recording unitconfigured to record a relative azimuth angle obtained from an outputsupplied from an direction sensor included in a terminal apparatuscarried by a user; an identifying unit configured to identify a user'sdirection at a first point at which the user's direction is capable ofbeing identified; and an inferring unit configured to infer the user'sdirection at a second point different from the first point, by using arelative azimuth angle corresponding to the first point and a relativeazimuth angle corresponding to the second point different from the firstpoint, and the user's direction that has been identified at the firstpoint.